#ifndef LEVEL_CHANGE_LISTENER_H
#define LEVEL_CHANGE_LISTENER_H

#include "SFML/System.hpp"

class Level;

class LevelChangeListener
{
public:
    virtual ~LevelChangeListener() {}

    // Be notified that the level change has started.
    virtual void onStarted() = 0;
    // The level has given us permission to do any loading etc. we require.
    // entryPoint is the position of the player in newLevel.
    // isFirstLoaded = true if this is the first loaded level for this game.
    virtual void onIntermission(bool isFirstLoaded, Level& newLevel, const sf::Vector2f& entryPoint) = 0;
    // Be notified that the level change has finished.
    virtual void onFinished() = 0;
};

#endif